/************************************************************************

								Heroes IV
					  Copyright 2000, The 3DO Company

	------------------------------------------------------------------
  						       map_header.h

	$Header: /game/map_header.h $

	$NoKeywords: $

 ************************************************************************/

#ifndef MAP_HEADER_H_INCLUDED
#define MAP_HEADER_H_INCLUDED

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include <string>
#include "player_color.h"
#include "scenario_cut_scene_info.h"
#include "sized_int_types.h"
#include "town_type_set.h"

class t_progress_handler;
enum t_difficulty;

// ---------------------------------------------------------------------------
// adventure map header info
// ---------------------------------------------------------------------------
class t_map_header
{
public:
	std::string					name;
	std::string					description;
	int							version;
	int							size;
	int							levels;
	int							random_seed;
	int							players;
	int							humans;
	int							human_teams; // Number of teams with at least one human player in them
	t_difficulty				difficulty;
	std::string					victory_condition;
	std::string					loss_condition;
	bool						enable_standard_victory;
	bool						playable[k_active_player_color_count];
	bool						can_be_human[k_active_player_color_count];
	t_town_type_set				available_alignments[k_active_player_color_count];
	t_uint8						team_id[ k_active_player_color_count ];
	t_scenario_cut_scene_info	prologue_info;
	t_scenario_cut_scene_info	epilogue_info;
	std::string					carryover_description;
};

bool read(
	std::streambuf &		buffer,
	t_map_header &			header,
	t_progress_handler *	handler );

#endif // MAP_HEADER_H_INCLUDED
